﻿#ifndef _DB_IDATAMETAINFO_H
#define _DB_IDATAMETAINFO_H

#include "kernel/Referenced.h"
#include "udatabase/dll_cfg.h"
#include "kernel/string_def.h"
#include "udatabase/interface/idataset.h"
#include "geometry/interface/ienvelope.h"

namespace FD
{
	namespace Utility
	{
		namespace DB
		{
			namespace Interface
			{
				/// <summary>
				/// 数据集元信息接口，用于记录数据集的相关信息
				/// </summary>
				class FD_DB_Export IDataMetaInfo : public FD::Kernel::CReferenced
				{
				public:					
					/// <summary>
					/// 默认析构函数
					/// </summary>
					/// <param name=""></param>
					/// <returns></returns>
					virtual ~IDataMetaInfo();
				public:
					/// <summary>
					/// 获取数据集类型
					/// </summary>
					/// <returns>数据集类型</returns>
					virtual FD::Utility::DB::Interface::DatasetType getDatasetType() const;
					/// <summary>
					/// 获取数据集的名称
					/// </summary>
					/// <returns>数据集的名称</returns>
					virtual String getName() const;
					/// <summary>
					/// 获取数据集的范围
					/// </summary>
					/// <returns>内部对象引用，无需释放</returns>
					virtual const FD::Kernel::Geometry::Interface::IEnvelope* getEnvelopeRef() const;
					/// <summary>
					/// 获取数据集的坐标系统
					/// </summary>
					/// <returns>坐标系统对象</returns>
					//virtual FD::Kernel::SpatialReference* getSpatialReference() const;

				protected:
					/// <summary>
					/// 默认构造函数
					/// </summary>
					/// <returns></returns>
					IDataMetaInfo();
				private:
					C_DISABLE_COPY(IDataMetaInfo);
				};
			}
		}
	}
}

#endif
